Sito
void sito(bool *tab, unsigned int n)
for (int i=2; i*i<=n; i++) 			przeszukujemy kolejnych kandydatów na pierwsze
    						wystarczy sprawdzić do pierwiastka z n
    						i<=sqrt(n) - podnosząc do kwadratu mamy
    						i*i <= n
	if(!tab[i])				jesli liczba jest pierwsza(ma wartosc 0)
	for (int j = i*i ; j<=n; j+=i) 		to wykreslamy jej wielokrotnosci
            tab[j] = 1;				ustawiając wartosć na 1

W Mainie:
int n;
bool *tab;

cout<<"Podaj zakres gorny przedzialu: ";
cin>>n;

tab = new bool [n+1];
for(int i=2; i<=n; i++) //zerowanie tablicy
	tab[i] = 0;

sito(tab, n);

cout<<"Kolejne liczby pierwsze z przedzialu [2.."<<n<<"]: ";
	for(int i=2;i<=n;i++)
		if(!tab[i])
			cout<<i<<" ";
